package com.inifitness.admin.core.system.service;


import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.inifitness.admin.core.system.model.entity.SysRoleMenu;

/**
 * 角色菜单业务接口
 *
 * @author sunjinfeng
 * @since 2024/04/18 11:00:00
 */
public interface SysRoleMenuService extends IService<SysRoleMenu> {

  /**
   * 获取角色拥有的菜单ID集合
   *
   * @param roleId 角色ID
   * @return 菜单ID集合
   */
  List<Long> listMenuIdsByRoleId(Long roleId);


  /**
   * 刷新权限缓存(所有角色)
   */
  void refreshRolePermsCache();

  /**
   * 刷新权限缓存(指定角色)
   *
   * @param roleCode 角色编码
   */
  void refreshRolePermsCache(String roleCode);

  /**
   * 刷新权限缓存(修改角色编码时调用)
   *
   * @param oldRoleCode 旧角色编码
   * @param newRoleCode 新角色编码
   */
  void refreshRolePermsCache(String oldRoleCode, String newRoleCode);

}
